package com.dys.testfile01;

import java.io.File;

/**
 * @className: com.dys.testfile01.DirectoryTest
 * @description: com.dys.testfile01
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/13 下午10:39
 */
public class DirectoryTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        File f1 = new File("E:\\WorkSpace\\Idea2023-WorkSpace\\");

        // 1.常用方法
        System.out.println("文件是否可读：" + f1.canRead());
        System.out.println("文件是否可写：" + f1.canWrite());
        System.out.println("文件的名字：" + f1.getName());
        System.out.println("文件所在的上级目录：" + f1.getParent());
        System.out.println("是否为目录：" + f1.isDirectory());
        System.out.println("是否为txt文件：" + f1.isFile());
        System.out.println("是否设置了隐藏：" + f1.isHidden());
        System.out.println("txt文件的大小: " + f1.length());
        System.out.println("文件是否存在：" + f1.exists());
        System.out.println("绝对路径：" + f1.getAbsolutePath());
        System.out.println("相对路径：" + f1.getPath());
        System.out.println("toString: " + f1.toString());

        // 2.目录相关方法
        File f2 = new File("E:/a/b/c");
        File f3 = new File("E:" + File.separator + "b" + File.separator + "c" + File.separator + "d");
        // 创建目录
        // f2.mkdir(); // 创建单层目录
        // f2.mkdirs(); // 创建多层目录
        f3.mkdirs(); // 创建多层目录
        // 删除: 如果是删除目录的话，只会删除一层，并且前提是这层目录是空的，里面没有内容，如果有内容，就不会被删除
        f2.delete();

        // 查看
        System.out.println("=========================");
        String[] list = f1.list();
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println("=========================");
        File[] files = f1.listFiles();
        for (File f : files) {
            System.out.println(f.getName() + "==" + f.getAbsolutePath());
        }
    }
}
